package main

import "fmt"

func main() {
	// Go语言中的循环语句只支持 for 关键字，而不支持 while 和 do-while 结构
	sum := 0
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println("Sum:", sum)

	// 无限循环
	count := 0
	for {
		count++
		if count >= 5 {
			break
		}
	}
	fmt.Println("Count:", count)

	// Go语言的 for 循环同样支持 continue 和 break 来控制循环，但是它提供了一个更高级的 break，可以选择中断哪一个循环
OuterLoop:
	for i := 0; i < 3; i++ {
	InnerLoop:
		for j := 0; j < 3; j++ {
			if i+j > 2 {
				break OuterLoop
			}
			if (j % 2) == 0 {
				continue InnerLoop
			}
			fmt.Printf("i=%d, j=%d\n", i, j)
		}
	}
	// 初始语句由外部声明，初始语句之后的分号必须要写
	step := 2
	for ; step > 0; step-- {
		fmt.Println(step)
	}

	// 在 Go 里，标签（label） 并不是“修饰”某个 for，它只是一个跳转标记，可以放在 任何语句 前面，包括 for、switch、select，甚至裸语句块
}
